home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 03 - 1987 / 03.11 Nov 87 / C string library / PStrLib Source / PStrFind.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-10-21  |  696 b   |  21 lines  |  [TEXT/KAHL]

  1. /*    FILE:    PStrFind.c    
  2.     Finds first occurance of p in t. */
  3. #include    "PStrLib.h"
  4.  
  5. PStrFind(p, t, pos)     
  6. unsigned char    *p, *t;        /* Pascal strings */
  7. register int    pos;        /* char position in t to start search  */
  8. {                            /* range of pos: 1 to 255 */
  9.     register    unsigned char    *tp = t + pos, *pp = p, *ppe = p + *p;
  10.     register    long            tpe = (long)(t + *t); /* trick ptr! */
  11.     
  12.     while (++pp <= ppe && tp <= (unsigned char *)tpe) {
  13.         while (*pp != *tp) {
  14.             tp = t + ++pos;        /* set tp to next pos in text */
  15.             pp = p + 1;            /* set sp to start of pattern */
  16.         }
  17.         ++tp;    /* compare next char for match (pp is incremented above) */
  18.     }
  19.     return(pp > ppe ? pos : 0);    /* 0 if Not Found, else char position in t */
  20. }
  21.